package com.trace.demo.repository;

import com.trace.demo.entity.ProcessingInfo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.time.LocalDate;
import java.util.List;
import java.util.Optional;

@Repository
public interface ProcessingInfoRepository extends JpaRepository<ProcessingInfo, Long> {

    /**
     * 根据产品ID查找加工信息
     * @param productId 产品ID
     * @return 加工信息
     */
    Optional<ProcessingInfo> findByProductId(Long productId);

    /**
     * 根据加工日期范围分页查询
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @param pageable 分页参数
     * @return 分页加工信息列表
     */
    Page<ProcessingInfo> findByProcessingDateBetween(LocalDate startDate, LocalDate endDate, Pageable pageable);

    /**
     * 按产品ID和加工厂进行分页查询
     * @param productId 产品ID
     * @param processingFactory 加工厂名称
     * @param pageable 分页参数
     * @return 分页加工信息列表
     */
    Page<ProcessingInfo> findByProductIdAndProcessingFactoryContaining(Long productId, String processingFactory, Pageable pageable);
}
